/**
 * 初始化
 */
$(function (){
    // 表单验证和提交处理
    $("#teacherForm").validate({
        submitHandler: function (form) {
            saveTeacher();
        }
    });
    $('.fixed-table-pagination').show();
    // 初始化表格
    $('#teacherTb').bootstrapTable({
        method: 'GET',
        url: '/webapi/teacher/list', // 初始加载地址，这里假设是用于加载所有学生数据的接口
        striped: true,
        cache: false,
        pagination: true,
        sortable: false,
        sidePagination: "server", // 后端分页
        pageNumber: 1,
        pageSize: 3,
        pageList: [3, 6, 10, 20, 100],
        queryParams: function (params) {
            return {
                pageSize: params.limit,
                pageNum: params.offset / params.limit + 1
            };
        },
        columns: [{
            checkbox: true,
        },{
            field: 'id',
            title: '教师ID'
        },{
            field: 'teacherNo',
            title: '教师工号'
        },{
            field: 'teacherName',
            title: '教师姓名'
        },{
            field: 'teacherPassword',
            title: '教师密码',
            formatter: passwordFormatter // 自定义操作列的格式化函数
        },{
            field: 'cno',
            title: '课程号'
        },{
            field: 'sex',
            title: '性别',
            formatter:function(data,row,meta){
                if(data == 1)
                    return "男";
                else if(data == 2)
                    return "女";
                else
                    return "未知";
            }
        },{
            field: 'age',
            title: '年龄'
        },{
            field: 'handle',
            title: '操作',
            formatter: operateFormatter // 自定义操作列的格式化函数
        }]
    });
    $('#allTeacher').hide();
    // 点击按钮刷新表格
    $('#allTeacher').click(function() {
        $('#teacherTb').bootstrapTable('refresh');
    });
    // 监听学号输入框失去焦点事件
    $('#teacherNo').on('blur', function() {
        var teacherNo = $(this).val().trim();
        if (teacherNo !== '') {
            checkDuplicateNo(teacherNo);
        }
    });
});
$(document).ready(function() {
    // 发送AJAX请求获取课程列表
    $.ajax({
        url: 'webapi/course/list',
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            console.log(data.rows);
            if (data && data.rows.length>0) {
                var $courseSelect = $('#cno');
                $courseSelect.empty();
                $courseSelect.append('<option value="">请选择课程</option>');
                $.each(data.rows, function(index, course) {
                    $courseSelect.append('<option value="' + course.cno + '">' + course.cname + '</option>');
                });
            }
        },
        error: function(xhr, status, error) {
            console.error('获取课程数据失败:', status, error);
        }
    });
});
function passwordFormatter(value, row, index) {
    return `
        <span class="password-field" data-password="${value}">***</span>
        <svg style="width: 15px; height: 15px; position: relative; left: 70px; cursor:pointer; " t="1717082484900" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4288" width="200" height="200"><path d="M515.2 224c-307.2 0-492.8 313.6-492.8 313.6s214.4 304 492.8 304 492.8-304 492.8-304S822.4 224 515.2 224zM832 652.8c-102.4 86.4-211.2 140.8-320 140.8s-217.6-51.2-320-140.8c-35.2-32-70.4-64-99.2-99.2-6.4-6.4-9.6-12.8-16-19.2 3.2-6.4 9.6-12.8 12.8-19.2 25.6-35.2 57.6-70.4 92.8-102.4 99.2-89.6 208-144 329.6-144s230.4 54.4 329.6 144c35.2 32 64 67.2 92.8 102.4 3.2 6.4 9.6 12.8 12.8 19.2-3.2 6.4-9.6 12.8-16 19.2C902.4 585.6 870.4 620.8 832 652.8z" p-id="4289"></path><path d="M512 345.6c-96 0-169.6 76.8-169.6 169.6 0 96 76.8 169.6 169.6 169.6 96 0 169.6-76.8 169.6-169.6C681.6 422.4 604.8 345.6 512 345.6zM512 640c-67.2 0-121.6-54.4-121.6-121.6 0-67.2 54.4-121.6 121.6-121.6 67.2 0 121.6 54.4 121.6 121.6C633.6 582.4 579.2 640 512 640z" p-id="4290"></path></svg>
    `;
}
$(document).on('click', '.icon', function () {
    var $btn = $(this);
    var $passwordField = $btn.siblings('.password-field');
    var isHidden = $passwordField.text() === '***';
    if (isHidden) {
        $passwordField.text($passwordField.data('password'));
        $btn.find('i').removeClass('fa-eye').addClass('fa-eye-slash');
    } else {
        $passwordField.text('***');
        $btn.find('i').removeClass('fa-eye-slash').addClass('fa-eye');
    }
});
/**
 * 处理后端返回的操作结果
 * @param {Object} result 后端返回的结果对象，包含code和msg字段
 */
function handleResponse(result) {
    if (result.code === 1 || result.length > 0) {
        console.log('操作成功');
    } else {
        console.error('操作失败');
    }
}
/**
 * 预新增
 */
function preAdd(){
    $('#id').val(0);    //提示新增
    $('#teacherForm')[0].reset();
}
/**
 * 验证新增学生时学号是否重复
 * @param teacherNo
 */
function checkDuplicateNo(teacherNo) {
    var id = $('#id').val();
    if(id < 1){
        $.ajax({
            url: "/webapi/teacher/checkDuplicateNo",
            method: "POST",
            data: { teacherNo: teacherNo },
            success: function (response) {
                if (response) {
                    alert("工号已存在，请输入不同的工号！");
                    $('#saveBtn').prop('disabled', true); // 禁用保存按钮
                } else {
                    $('#saveBtn').prop('disabled', false); // 启用保存按钮
                }
            },
            error: function () {
                alert("检查工号重复时出错，请稍后重试！");
            }
        });
    }
}
/**
 * 保存学生信息（新增或更新）
 */
function saveTeacher() {
    var data = $("#teacherForm").serialize();
    var id = $('#id').val();
    if (id < 1) { // 新增
        $.ajax({
            url: "/webapi/teacher/add",
            method: "POST",
            data: data,
            success: function (response) {
                handleResponse(response);
                if (response === -1) {
                    alert("工号已存在，请输入不同的工号！");
                } else {
                    $('#myModal').modal('hide'); // 关闭模态框
                    $("#teacherTb").bootstrapTable('refresh'); // 刷新表格数据
                }
            },
            error: function () {
                alert("保存失败，请稍后重试！");
            }
        });
    } else { // 更新
        var result = confirm("确定保存教师信息吗？"); // 弹出确认提示框
        if (result) {
            $.ajax({
                url: "/webapi/teacher/update", 
                method: "PUT",
                data: data
            }).done(function (response) {
                handleResponse(response);
                console.log(response);
                $('#myModal').modal('hide'); // 关闭模态框
            }).fail(function () {
                alert("保存失败，请稍后重试！");
            });
        }
    }
}
/**
 * 查询学生信息，并更新Bootstrap表格显示
 */
function searchTeacher() {
    var searchBy = $("#searchBy").val(); // 获取查询方式
    var keyword = $("#searchInput").val().trim(); // 获取查询关键词
    if (keyword !== "") {
        $.ajax({
            url: "/webapi/teacher/search", // 发送查询请求的 URL
            method: "GET",
            data: {
                searchBy: searchBy,
                keyword: keyword
            }
        }).done(function (result) {
            handleResponse(result);
            if (result.length > 0) {
                // 更新Bootstrap表格数据
                $('#teacherTb').bootstrapTable('load', {
                    total: result.length,
                    rows: result
                });
                $('#searchModal').modal('hide'); // 关闭模态框
                $('#allTeacher').show();
                // 为按钮添加点击事件处理函数
                $('#allTeacher').on('click', function() {
                    $(this).hide(); // 隐藏按钮
                });
                $('.fixed-table-pagination').hide();
            } else {
                // 如果没有查询到结果，显示空数据
                $('#teacherTb').bootstrapTable('removeAll');
                $('#teacherTb').bootstrapTable('append', []);
                $('#teacherTb').bootstrapTable('load', {
                    total: 0,
                    rows: []
                });
                $('#searchModal').modal('hide'); // 关闭模态框
                $('#allTeacher').show();
                // 为按钮添加点击事件处理函数
                $('#allTeacher').on('click', function() {
                    $(this).hide(); // 隐藏按钮
                });
                $('.fixed-table-pagination').hide();    //隐藏分页，显示所有相关教师信息
                alert("没有找到相关教师信息!!!")
            }
        });
    }
}
// 自定义操作列的格式化函数
function operateFormatter(value, row, index) {
    // 返回操作按钮的HTML代码
    return [
        '<button class="btn btn-sm btn-primary mr-2" onclick="editTeacher(' + row.id + ')">更新</button>',
        "<svg style='width: 20px; height: 20px; position: relative; top: 5px; left: 15px; cursor: pointer;' onclick='deleteTeacher(" + row.id + ");' t=\"1715694995313\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1647\" width=\"200\" height=\"200\"><path d=\"M781.28 851.36a58.56 58.56 0 0 1-58.56 58.56H301.28a58.72 58.72 0 0 1-58.56-58.56V230.4h538.56z m-421.6-725.92a11.84 11.84 0 0 1 12-12h281.28a11.84 11.84 0 0 1 12 12V160H359.68zM956.8 160H734.72v-34.56a81.76 81.76 0 0 0-81.76-81.76H371.68a82.08 82.08 0 0 0-81.76 81.76V160H67.2a35.36 35.36 0 0 0 0 70.56h105.12v620.8a128.96 128.96 0 0 0 128.96 128.96h421.44a128.96 128.96 0 0 0 128.96-128.96V230.4H956.8a35.2 35.2 0 0 0 35.2-35.2 34.56 34.56 0 0 0-35.2-35.2zM512 804.16a35.2 35.2 0 0 0 35.2-35.36V393.92a35.2 35.2 0 1 0-70.4 0V768.8a35.2 35.2 0 0 0 35.2 35.36m-164.32 0a35.36 35.36 0 0 0 35.36-35.36V393.92a35.36 35.36 0 1 0-70.56 0V768.8a36.32 36.32 0 0 0 35.2 35.36m328.64 0a35.36 35.36 0 0 0 35.2-35.36V393.92a35.36 35.36 0 1 0-70.56 0V768.8a35.36 35.36 0 0 0 35.36 35.36\" fill=\"#D81E06\" p-id=\"1648\"></path></svg>"
    ].join('');
}
/**
 * 更新教师信息的事先查询
 * @param id
 */
function editTeacher(id){
    $('#myModal').modal('show');    //打开模态框
    $.ajax({
        url: "/webapi/teacher/get/" + id,
        method: "GET"
    }).done(function (rs){
        $('#id').val(rs.id);
        $('#teacherNo').val(rs.teacherNo);
        $('#teacherName').val(rs.teacherName);
        $('#teacherPassword').val(rs.teacherPassword);
        $('#cno').val(rs.cno);
        $('#sex').val(rs.sex);
        $('#age').val(rs.age);
    });
    // 在模态框关闭时，重新加载表格数据
    $('#myModal').on('hidden.bs.modal', function () {
        $('#teacherTb').bootstrapTable('refresh');
    });
}
/**
 * 删除教师信息
 * @param id 教师id
 */
function deleteTeacher(id) {
    // 显示确认对话框
    var result = confirm("您确定要删除该教师信息吗？");
    // 如果用户确认删除，则进行 AJAX 请求
    if (result) {
        $.ajax({
            url: "/webapi/teacher/delete/" + id, // 假设这是删除教师的端点
            method: "DELETE"
        }).done(function (response) {
            handleResponse(response);
            //重新加载表格数据
            $('#teacherTb').bootstrapTable('refresh');
        });
    }   //end if
}